With the rapid development of computer application technologies, massive data is generated, which results in higher requirements on storage space and performance. Because operations on a current mainstream disk still include a large number of mechanical operations, a gap exists between performance of the current mainstream disk and that of a processor and a memory. A cache technology is applied to the storage field, which not only can hide a host delay, but also can integrate data, and data is written to a disk in a disk-friendly manner by using a CACHE, that is, the disk is flushed, thereby achieving optimum throughput of a storage system.
After decades of research, an existing CACHE algorithm becomes mature. However, applications provided by computers become diversified day by day, and both space and performance provided by a disk array need a more flexible scheduling method. A same disk array usually may include disks of different types, and even in redundant array of independent disks (RAID) groups that include disks of a same type, the number of member disks included in each RAID group is usually different. Moreover, the number of logical units identified by using logical unit numbers (LUN) in a single RAID group also gradually increases.
In the prior art, during flushing of a disk array, scheduling is performed in a logical unit layer, that is, each flushing input/output (IO) is for a single logical unit. However, a disk array includes multiple RAID groups, and each RAID group further includes multiple logical units; a current disk array flushing method cannot properly work in this situation. For example, for multiple logical units in a same RAID group, flushing IOs for a single logical unit are ordered flushing IOs in the logical unit; however, because concurrent flushing needs to be performed on multiple logical units, and the multiple logical units on which the concurrent flushing is performed have a discrete sequence, concurrent flushing IOs in the whole RAID group are usually discrete. Concurrent flushing IOs that are discrete may cause a magnetic arm of a disk to jump back and forth for addressing, and a lot of time is spent in addressing by the magnetic arm rather than data reading and writing, leading to a severe negative effect on overall performance of the disk array, and low throughput of the disk array.